#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Dify 应用调用示例
支持聊天、完成和工作流类型的应用
"""

from dify_agent_client import DifyAgentClient

# 您的Dify配置
BASE_URL = "http://localhost/v1" 
API_KEY = "app-WxixS4rZNMNIxAzSzfiCUMhY"   #代码转译助手
USER_ID = "ee5fbdcb-e0b0-48cb-b521-8fc2dcea2f00"

def auto_detect_example():
    """自动检测应用类型示例"""
    
    # 创建客户端
    client = DifyAgentClient(BASE_URL, API_KEY)
    
    # 示例源代码（要转换的Python代码）
    source_code = """def calculate_sum(a, b):
    return a + b"""

    # 设置API调用参数
    user_input = {
        "default_input": source_code,     # 要转换的源代码
        "target_code": "C++"              # 目标编程语言
    }
    
    print(f"发送消息: {user_input}")
    
    # 使用自动检测功能
    result = client.chat_completion(
        user_input="请将以下代码转换为C++:\n" + source_code,
        user_id=USER_ID,
        app_type="auto"  # 自动检测应用类型
    )
    
    if result.get("error"):
        print(f"调用失败: {result.get('message')}\n")
    else:
        print(f"应用回复: {result.get('answer')}\n")
        if result.get('conversation_id'):
            print(f"会话ID: {result.get('conversation_id')}")
        if result.get('workflow_run_id'):
            print(f"工作流运行ID: {result.get('workflow_run_id')}")

def completion_app_example():
    """完成应用示例"""
    
    # 创建客户端
    client = DifyAgentClient(BASE_URL, API_KEY)
    
    # 示例源代码（要转换的Python代码）
    source_code = """def calculate_sum(a, b):
    return a + b"""
    
    # 设置API调用参数
    user_input = {
        "default_input": source_code,     # 要转换的源代码
        "target_code": "C++"              # 目标编程语言
    }
    
    print(f"发送消息到完成应用: {user_input}")
    
    # 直接调用completion端点
    result = client.completion_message(
        user_input="",  # 完成应用通常不使用user_input，而是使用inputs
        user_id=USER_ID,
        inputs=user_input
    )
    
    if result.get("error"):
        print(f"调用失败: {result.get('message')}")
    else:
        print(f"完成应用回复: {result.get('answer')}")

def main():
    print("=== Dify 应用调用示例 ===\n")
    
    print("1. 自动检测应用类型:")
    auto_detect_example()
    
    print("\n" + "="*50 + "\n")
    
    print("2. 完成应用示例:")
    completion_app_example()

if __name__ == "__main__":
    main()